<?php

include(dirname(__FILE__).'/../../bootstrap/functional.php');

$browser = new KTDTestFunctional(new sfBrowser());
$browser->loadData();
$browser->setTester('doctrine', 'sfTesterDoctrine');

$browser->
    info("Personnage")->
    info("I- Creation d'un personnage")->
        info("  I.1-Authentification")->
        auth("lambda_member", "lambda_member")->      
        info("  I.2- Acceder au formulaire ")->
        get("/personnage/creer-nouveau.html")->
        with("response")->begin()->
            checkElement("form", true)->
        end()->
        info("  I.3 - Remplir le formulaire")->
        info("      I.3.a - Remplir le formulaire avec des trous.")->
                click("Save", array("ktd_character" => array(
                            "pseudo" => "Lambda"
        )))->
        with("form")->begin()->
            hasErrors(1)->
        end()->
        info("      I.3.b - Remplir le formulaire convenablement")->
        click("Save", array("ktd_character" => array(
                            "pseudo" => "Lambda",
                            "ktd_character_fiche"  => array(
                                'story' => 'Lambda\'s story',
                                'mind_desc'  => 'Lambda\'s mind',
                                'phy_desc'   => 'Lambda\'s body'
                            )
        )))->

        info("  I.4 - Traitement du formulaire")->
        with("form")->begin()->
            hasErrors(false)->
        end()->
        info("  I.5 - Redirection")->
        with("response")->begin()->
            isRedirected()->
        end();

$browser->
        info("II - Changements de personnage")->
        get("joueur/lambda-member,2000/personnages.html")->
        with("response")->begin()->
        info("  II.1 - A-t'on bien le personnage cree comme personnage selectionne ?")->
            checkElement('h1:contains("Lambda")')->          
        info("  II.2 - On souhaite effectue un changement rapide de personnage")->
            checkElement("form", true)->
        end()->
        info("      II.2.a - On essaye de changer de personnage avec celui d'un autre joueur !")->
        click("Changer !", array("ktd_switch_character" => array(
                                    'actual_character_id' => '1001')
                                )
                )->
        with("form")->begin()->
            hasErrors(1)->
        end()->
        info("      II.2.b - On change de personnage avec un des notres.")->
        click("Changer !", array("ktd_switch_character" => array(
                                    'actual_character_id' => '2001')
                                )
                )->
        with("form")->begin()->
            hasErrors(0)->
        end()->
        with("response")->
            isRedirected()->
            followRedirect()->
        info("  II.3 - On verifie le changement de personnage")->
        with("doctrine")->begin()->
        check("sfGuardUser", array('id' => 2000, 'actual_character_id' =>  2001))->
        end();

